﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SmApiLibrary.libs;
using SmAp.Operator.OP.Factory;
using SmAp.Operator.Interface;

namespace SmAp.Operator.OP.ABF
{
    public abstract class OperatorABF
    {
        public OperatorABF()
        { }

        public static OperatorABF CreateAbstractFactory(WeiBoType type)
        {
            OperatorABF abf = null;
            switch (type)
            { 
                case WeiBoType.Sina:
                    abf = new SinaOperatorFactory();
                    break;
                case WeiBoType.QQ:
                    abf = new QQOperatorFactory();
                    break;
                default:
                    abf = new SinaOperatorFactory();
                    break;
            }
            return abf;
        }

        #region --- 抽象方法 ---
        public abstract ITimeline CreateTimeLine();
        public abstract IOAuth CreateOAuth();
        public abstract IEmotions CreateEmotions();
        #endregion
    }
}
